/* 
 * File:   Perimetro.h
 * Author: max
 *
 * Created on November 3, 2012, 7:44 PM
 */

#ifndef PERIMETRO_H
#define	PERIMETRO_H

#include "Utilidad.h"

using namespace TP::Matematica;
using namespace TP::Juego::Motorizacion::Fisica;

namespace TP { namespace Juego { namespace Arena { namespace Utilidades {

class Perimetro : public Utilidad {
public:
    
    Perimetro();
    
    Perimetro(unsigned long int pAlto, unsigned long int pAncho);
    
    virtual ~Perimetro();
    
    unsigned long int getAlto();
    
    unsigned long int getAncho();
    
    bool pertenecePerimetro (Posicion* pPosicion);
    
    Vector2D* getNormalAPuntoPerimetro (Posicion* pPosicion);
    
    Vector2D* getPuntoAdjuntoInterior (Posicion* pPosicion);
    
    virtual TiXmlElement* aElementoXML ();
    
    virtual void deElementoXML (TiXmlElement* pElemento);
    
    virtual double getRadio();
    
    virtual int getPuntos() const;
    
private:
    unsigned long int _alto
                    , _ancho;
};
}}}}


#endif	/* PERIMETRO_H */

